Computing systems can include multiple computing devices such as servers, desktop PCs, laptops, and workstations, among other peripheral devices, (e.g., printers, facsimile devices, and scanners). In some systems, these network devices can be networked together across a local area network (LAN) and/or wide area network (WAN) to form a computing device network. A LAN and/or WAN uses clients and servers that have network-enabled operating systems such as Windows, Mac, Linux, and Unix.
Data communication between the different devices of the computing device network can include voice, video, still images, and data traffic. All have widely varying needs in terms of propagation delay (or latency) during transit through the network. Various systems and devices, both in hardware and in software, have attempted to deal with the large data flow requirements present in computing device networks.
One such scheme consists of attempting to allocate resources and police the traffic within the router or switch connecting multiple networks in the typical computing device network at either the data link or network function levels. Such schemes attempt to provide fair allocation of data throughput capacity (bandwidth) by allocating packet buffer and/or queue space according to the type of packets and arrival rate in each flow stream received.
A particular problem in network traffic policing arises from the variety of traffic sources or flows presented to the router/switching device. These flows each consist of multiple packets of data, in a variety of sizes and presented at a variety of rates. Additionally, flows may be presented using different networking protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP) and the related User Datagram Protocol (UDP) over which application protocols, such as File Transfer Protocol (FTP), Terminal Emulation Protocol (Telnet), Session Initiation Protocol (SIP), Real Time Protocol (RTP), and Hypertext Transfer Protocol (HTTP) are layered on top of.